v2 is a macro-composition correction to one thing: the Projects header. Everything else — routes, fixtures, states, tokens, row density, pairing, recovery, picker and configuration — is v1 unchanged, and v1 is still on disk. Every frame below is the same live component at 402 × 874; tap through them.
v1 stacked three bands under the title: machine state, then a leading text band holding Review, Help and Settings, then the filter. The upper-right corner of the screen carried nothing, while three destinations of very unequal weight shared one undifferentiated row.
v2 makes that corner purposeful. Row 1 is the title with exactly two controls at its trailing edge: the computer doorway — an outlined display, not a plus, because it switches machines rather than creating anything — and an overflow trigger. Row 2 keeps the written machine and connection state where it was and puts Review at the trailing edge with its real count, so the one queue that can block work stays a single tap away.
Help and Settings move into the overflow, where destinations outside the working loop belong; the update dot rides the trigger and repeats on Settings so the badge has somewhere to lead. Nothing else moved. No top-level plus, no second New session, and Open any folder… is still the one content doorway.
At 200% the machine line wraps and Review drops beneath it rather than truncating. Both stay above the filter, and the title, both controls, Review and Open any folder… all remain reachable without scrolling.
48 pt at default size, 56 at 200%. The ink stays optically aligned to the gutter through negative margins, so a larger hit box never pushes the glyph off the 20 pt line.
Filled dot, diamond and square keep their meanings in both palettes, each next to a written word. The update dot is an accent circle on a control that also carries a label in its menu.
Both header controls and Review are buttons with explicit labels — Computers, More options, and Review Center with its waiting count — reachable by keyboard and activated by Enter or Space. The trigger reports aria-expanded, and the panel is a menu of menu items.
Tap outside, tap the trigger again, or choose an item. Opening it changes nothing and starts nothing; it is a disclosure, not a decision.
Ready, Connecting, Reconnecting, offline, and every backdrop behind the picker, configuration, OpenCode and the full-access confirmation — one header, rendered once in the component.
Chat, Review Center, Help, Settings and Demo open a stub that names the surface and stops. Copy actions report success without touching the clipboard. Everything else is the real flow.
Only the middle scrolls. The user can still read which directory they are in and still reach the control that starts it.
Agent chips wrap to a second line; the Start caption wraps on characters and the control grows. No label is truncated and no row has a fixed height.
Ring, diamond, square and filled dot carry state in both themes. Colour only confirms what the shape and the sentence already said.
Rendered as ⟨model id n⟩ slots. Real ids come from the daemon list verbatim; when there is no list the row reads as following the computer's default.
The four preset names are product truth; their approval and sandbox pairs are not written here. The rows explain behaviour in plain language only.
Which agents a computer reports, and whether Claude's native Auto exists, come from capability. The prototype models this per computer; the real flags live in the repository.
Every label here is the product's English string. Translations come from product resources; rows already have no fixed heights, so longer strings grow rather than clip.